package com.gzc.service;

import java.util.List;

import com.gzc.common.Pager;
import com.gzc.model.Attachment;
import com.gzc.model.Message;

public interface IMessageService {
	/**
	 * 添加私人信件
	 * @param msg 私人信件内容
	 * @param userIds 为那些用户添加私人信件
	 */
	void add(Message msg, Integer[] userIds);
	
	/** 删除说接收的私人信件，直接删除关联关系 */
	void deleteReceive(int msgId);
	/** 删除发送的私人信件，首先先删除有接收关系的信件，然后在删除该对象 */
	void deleteSend(int msgId);
	
	/**
	 * 加载私人信息，加载时要考虑是否已读，所以是update不是load，如果是load则事务处理有问题。
	 * @param msgId
	 * @param isRead 如果isRead==0表示是在已读信件中的，此时需要检查，
	 * 	isRead==1表示在已读信件中使用，此时就不用在检查
	 * @return
	 */
	Message updateRead(int msgId, int isRead);
	
	/**
	 * 通过标题或者内容获取发出的私人信件
	 * @param context 要获取的标题或者内容
	 * @return
	 */
	Pager<Message> findSendMessage(String context);
	/**
	 * 获取接收的私人信件
	 * @param context 查询条件
	 * @param isRead 是否已读 0 表示未读1表示已读
	 * @return
	 */
	Pager<Message> findReceiveMessage(String context, int isRead);
	
	/** 获取某个私人信件的附件信息 */
	List<Attachment> listAttachmentByMsg(int msgId);
}
